using System;
using System.Collections.Generic;
using TestClassesForConcepts;
using TestClassesForConcepts.Sample3;

concept C1[T] 
{
    using AT1 = Sample1.A<Sample1.MyS, T>;
    //require AT1 == Sample1.C<Sample1.KeyA>;
    //type A1 <: SG1<A1>;
}

concept C2[S, T]
{
    require T <: KD1<S>;
}

concept C3[T]
{
    type A1;
    type A2;
    require A2 <: KD1<A1>;
    require A2 >: KD1<QA>;
}